{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>sepal length in cm</th>\n",
       "      <th>sepal width in cm</th>\n",
       "      <th>petal length in cm</th>\n",
       "      <th>petal width in cm</th>\n",
       "      <th>class label</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>145</th>\n",
       "      <td>6.7</td>\n",
       "      <td>3.0</td>\n",
       "      <td>5.2</td>\n",
       "      <td>2.3</td>\n",
       "      <td>Iris-virginica</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>146</th>\n",
       "      <td>6.3</td>\n",
       "      <td>2.5</td>\n",
       "      <td>5.0</td>\n",
       "      <td>1.9</td>\n",
       "      <td>Iris-virginica</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>147</th>\n",
       "      <td>6.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>5.2</td>\n",
       "      <td>2.0</td>\n",
       "      <td>Iris-virginica</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>148</th>\n",
       "      <td>6.2</td>\n",
       "      <td>3.4</td>\n",
       "      <td>5.4</td>\n",
       "      <td>2.3</td>\n",
       "      <td>Iris-virginica</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>149</th>\n",
       "      <td>5.9</td>\n",
       "      <td>3.0</td>\n",
       "      <td>5.1</td>\n",
       "      <td>1.8</td>\n",
       "      <td>Iris-virginica</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     sepal length in cm  sepal width in cm  petal length in cm  \\\n",
       "145                 6.7                3.0                 5.2   \n",
       "146                 6.3                2.5                 5.0   \n",
       "147                 6.5                3.0                 5.2   \n",
       "148                 6.2                3.4                 5.4   \n",
       "149                 5.9                3.0                 5.1   \n",
       "\n",
       "     petal width in cm     class label  \n",
       "145                2.3  Iris-virginica  \n",
       "146                1.9  Iris-virginica  \n",
       "147                2.0  Iris-virginica  \n",
       "148                2.3  Iris-virginica  \n",
       "149                1.8  Iris-virginica  "
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "feature_dict = {i:label for i,label in zip(\n",
    "                range(4),\n",
    "                  ('sepal length in cm',\n",
    "                  'sepal width in cm',\n",
    "                  'petal length in cm',\n",
    "                  'petal width in cm', ))}\n",
    "\n",
    "import pandas as pd\n",
    "\n",
    "df = pd.io.parsers.read_csv(\n",
    "    filepath_or_buffer='https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data',\n",
    "    header=None,\n",
    "    sep=',',\n",
    "    )\n",
    "df.columns = [l for i,l in sorted(feature_dict.items())] + ['class label'] \n",
    "df.dropna(how=\"all\", inplace=True) # to drop the empty line at file-end\n",
    "\n",
    "df.tail()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src=\"1.png\" alt=\"FAO\" width=\"690\" align=\"left\">"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import LabelEncoder\n",
    "\n",
    "X = df[['sepal length in cm','sepal width in cm','petal length in cm','petal width in cm']].values\n",
    "y = df['class label'].values\n",
    "enc = LabelEncoder()\n",
    "label_encoder = enc.fit(y)\n",
    "\n",
    "y = label_encoder.transform(y) + 1\n",
    "label_dict = {1: 'Setosa', 2: 'Versicolor', 3:'Virginica'}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src=\"2.png\" alt=\"FAO\" width=\"290\" align=\"left\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 分别求三种鸢尾花数据在不同特征维度上的均值向量 mi\n",
    "<img src=\"3.png\" alt=\"FAO\" width=\"390\">"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mean Vector class 1: [5.006 3.418 1.464 0.244]\n",
      "\n",
      "Mean Vector class 2: [5.936 2.77  4.26  1.326]\n",
      "\n",
      "Mean Vector class 3: [6.588 2.974 5.552 2.026]\n",
      "\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "np.set_printoptions(precision=4)\n",
    "\n",
    "mean_vectors = []\n",
    "for cl in range(1,4):\n",
    "    mean_vectors.append(np.mean(X[y==cl], axis=0))\n",
    "    print('Mean Vector class %s: %s\\n' %(cl, mean_vectors[cl-1]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 计算两个 4×4 维矩阵：类内散布矩阵和类间散布矩阵\n",
    "-  <img src=\"5.png\" alt=\"FAO\" width=\"330\" >\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "within-class Scatter Matrix:\n",
      " [[38.9562 13.683  24.614   5.6556]\n",
      " [13.683  17.035   8.12    4.9132]\n",
      " [24.614   8.12   27.22    6.2536]\n",
      " [ 5.6556  4.9132  6.2536  6.1756]]\n"
     ]
    }
   ],
   "source": [
    "S_W = np.zeros((4,4))\n",
    "for cl,mv in zip(range(1,4), mean_vectors):\n",
    "    class_sc_mat = np.zeros((4,4))                  # scatter matrix for every class\n",
    "    for row in X[y == cl]:\n",
    "        row, mv = row.reshape(4,1), mv.reshape(4,1) # make column vectors\n",
    "        class_sc_mat += (row-mv).dot((row-mv).T)\n",
    "    S_W += class_sc_mat                             # sum class scatter matrices\n",
    "print('within-class Scatter Matrix:\\n', S_W)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "-  <img src=\"6.png\" alt=\"FAO\" width=\"430\" >"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "between-class Scatter Matrix:\n",
      " [[ 63.2121 -19.534  165.1647  71.3631]\n",
      " [-19.534   10.9776 -56.0552 -22.4924]\n",
      " [165.1647 -56.0552 436.6437 186.9081]\n",
      " [ 71.3631 -22.4924 186.9081  80.6041]]\n"
     ]
    }
   ],
   "source": [
    "overall_mean = np.mean(X, axis=0)\n",
    "\n",
    "S_B = np.zeros((4,4))\n",
    "for i,mean_vec in enumerate(mean_vectors):  \n",
    "    n = X[y==i+1,:].shape[0]\n",
    "    mean_vec = mean_vec.reshape(4,1) # make column vector\n",
    "    overall_mean = overall_mean.reshape(4,1) # make column vector\n",
    "    S_B += n * (mean_vec - overall_mean).dot((mean_vec - overall_mean).T)\n",
    "\n",
    "print('between-class Scatter Matrix:\\n', S_B)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "-  <img src=\"7.png\" alt=\"FAO\" width=\"230\" >"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Eigenvector 1: \n",
      "[[ 0.2049]\n",
      " [ 0.3871]\n",
      " [-0.5465]\n",
      " [-0.7138]]\n",
      "Eigenvalue 1: 3.23e+01\n",
      "\n",
      "Eigenvector 2: \n",
      "[[-0.009 ]\n",
      " [-0.589 ]\n",
      " [ 0.2543]\n",
      " [-0.767 ]]\n",
      "Eigenvalue 2: 2.78e-01\n",
      "\n",
      "Eigenvector 3: \n",
      "[[-0.8379]\n",
      " [ 0.1696]\n",
      " [ 0.1229]\n",
      " [ 0.5041]]\n",
      "Eigenvalue 3: -4.13e-15\n",
      "\n",
      "Eigenvector 4: \n",
      "[[ 0.2   ]\n",
      " [-0.3949]\n",
      " [-0.4567]\n",
      " [ 0.7717]]\n",
      "Eigenvalue 4: 1.20e-14\n"
     ]
    }
   ],
   "source": [
    "eig_vals, eig_vecs = np.linalg.eig(np.linalg.inv(S_W).dot(S_B))\n",
    "\n",
    "for i in range(len(eig_vals)):\n",
    "    eigvec_sc = eig_vecs[:,i].reshape(4,1)   \n",
    "    print('\\nEigenvector {}: \\n{}'.format(i+1, eigvec_sc.real))\n",
    "    print('Eigenvalue {:}: {:.2e}'.format(i+1, eig_vals[i].real))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 特征值与特征向量：\n",
    "- 特征向量：表示映射方向\n",
    "- 特征值：特征向量的重要程度"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Eigenvalues in decreasing order:\n",
      "\n",
      "32.27195779972981\n",
      "0.27756686384004264\n",
      "1.1953730364935478e-14\n",
      "4.1311796919088535e-15\n"
     ]
    }
   ],
   "source": [
    "#Make a list of (eigenvalue, eigenvector) tuples\n",
    "eig_pairs = [(np.abs(eig_vals[i]), eig_vecs[:,i]) for i in range(len(eig_vals))]\n",
    "\n",
    "# Sort the (eigenvalue, eigenvector) tuples from high to low\n",
    "eig_pairs = sorted(eig_pairs, key=lambda k: k[0], reverse=True)\n",
    "\n",
    "# Visually confirm that the list is correctly sorted by decreasing eigenvalues\n",
    "\n",
    "print('Eigenvalues in decreasing order:\\n')\n",
    "for i in eig_pairs:\n",
    "    print(i[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Variance explained:\n",
      "\n",
      "eigenvalue 1: 99.15%\n",
      "eigenvalue 2: 0.85%\n",
      "eigenvalue 3: 0.00%\n",
      "eigenvalue 4: 0.00%\n"
     ]
    }
   ],
   "source": [
    "print('Variance explained:\\n')\n",
    "eigv_sum = sum(eig_vals)\n",
    "for i,j in enumerate(eig_pairs):\n",
    "    print('eigenvalue {0:}: {1:.2%}'.format(i+1, (j[0]/eigv_sum).real))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "选择前两维特征"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Matrix W:\n",
      " [[ 0.2049 -0.009 ]\n",
      " [ 0.3871 -0.589 ]\n",
      " [-0.5465  0.2543]\n",
      " [-0.7138 -0.767 ]]\n"
     ]
    }
   ],
   "source": [
    "W = np.hstack((eig_pairs[0][1].reshape(4,1), eig_pairs[1][1].reshape(4,1)))\n",
    "print('Matrix W:\\n', W.real)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_lda = X.dot(W)\n",
    "assert X_lda.shape == (150,2), \"The matrix is not 150x2 dimensional.\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib import pyplot as plt\n",
    "\n",
    "def plot_step_lda():\n",
    "\n",
    "    ax = plt.subplot(111)\n",
    "    for label,marker,color in zip(\n",
    "        range(1,4),('^', 's', 'o'),('blue', 'red', 'green')):\n",
    "\n",
    "        plt.scatter(x=X_lda[:,0].real[y == label],\n",
    "                y=X_lda[:,1].real[y == label],\n",
    "                marker=marker,\n",
    "                color=color,\n",
    "                alpha=0.5,\n",
    "                label=label_dict[label]\n",
    "                )\n",
    "\n",
    "    plt.xlabel('LD1')\n",
    "    plt.ylabel('LD2')\n",
    "\n",
    "    leg = plt.legend(loc='upper right', fancybox=True)\n",
    "    leg.get_frame().set_alpha(0.5)\n",
    "    plt.title('LDA: Iris projection onto the first 2 linear discriminants')\n",
    "\n",
    "    # hide axis ticks\n",
    "    plt.tick_params(axis=\"both\", which=\"both\", bottom=\"off\", top=\"off\",  \n",
    "            labelbottom=\"on\", left=\"off\", right=\"off\", labelleft=\"on\")\n",
    "\n",
    "    # remove axis spines\n",
    "    ax.spines[\"top\"].set_visible(False)  \n",
    "    ax.spines[\"right\"].set_visible(False)\n",
    "    ax.spines[\"bottom\"].set_visible(False)\n",
    "    ax.spines[\"left\"].set_visible(False)    \n",
    "\n",
    "    plt.grid()\n",
    "    plt.tight_layout\n",
    "    plt.show()\n",
    "\n",
    "plot_step_lda()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA\n",
    "\n",
    "# LDA\n",
    "sklearn_lda = LDA(n_components=2)\n",
    "X_lda_sklearn = sklearn_lda.fit_transform(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_scikit_lda(X, title):\n",
    "\n",
    "    ax = plt.subplot(111)\n",
    "    for label,marker,color in zip(\n",
    "        range(1,4),('^', 's', 'o'),('blue', 'red', 'green')):\n",
    "\n",
    "        plt.scatter(x=X[:,0][y == label],\n",
    "                    y=X[:,1][y == label] * -1, # flip the figure\n",
    "                    marker=marker,\n",
    "                    color=color,\n",
    "                    alpha=0.5,\n",
    "                    label=label_dict[label])\n",
    "\n",
    "    plt.xlabel('LD1')\n",
    "    plt.ylabel('LD2')\n",
    "\n",
    "    leg = plt.legend(loc='upper right', fancybox=True)\n",
    "    leg.get_frame().set_alpha(0.5)\n",
    "    plt.title(title)\n",
    "\n",
    "    # hide axis ticks\n",
    "    plt.tick_params(axis=\"both\", which=\"both\", bottom=\"off\", top=\"off\",  \n",
    "            labelbottom=\"on\", left=\"off\", right=\"off\", labelleft=\"on\")\n",
    "\n",
    "    # remove axis spines\n",
    "    ax.spines[\"top\"].set_visible(False)  \n",
    "    ax.spines[\"right\"].set_visible(False)\n",
    "    ax.spines[\"bottom\"].set_visible(False)\n",
    "    ax.spines[\"left\"].set_visible(False)    \n",
    "\n",
    "    plt.grid()\n",
    "    plt.tight_layout\n",
    "    plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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Aoq72L0bRo3qWh64NLgXDBo0iBNPPJGXX36Z6dOn8+STT3L55Zfz1ltvsXnzZt577z2MMVx88cW8+eabjBw5ko0bN/KXv/yFhx56iDVr1rBjxw7Wr18PQG1trd/1W1pauPzyy3nqqaeYPHky+/fvJzc3l9/85jcArFu3jg0bNnDOOeewadMmv3N//OMfM3HiRFasWMHrr7/O9773vY6cQmvWrGH16tXk5ub2+bt7URNQilCxu4IlZUuoaazp6Ox31e+ita2VwtxC0iSNwtxCCnMKWb5hudPiKkpc8DUDPfnkk1xxxRW89dZbvPLKK0ycOJHjjz+eDRs2dCSMO/zww5kyZQoAX//61/nss8+48cYbefnllykoKPC79saNGxk2bBiTJ08GoKCggIyMDFavXs13v/tdwCaUO/zww7soAN86Z5xxBvv27aOurg6Aiy++OCqdP6gCSBmWb1hOYU6hX2dvMOxo2OFXr39Of7bVbXNISkWJL5dccgmvvfYaH374IY2NjRx//PEYY7jttts60kFv2bKFq666CoBDDjmk49zCwkLWrl1LcXExDz74IFdffbXftY0xiEiXe4ZKI91THe+1fGWIFFUAKcK2um30z+nvV5aRlkHVgSq/srqmOkb2HxlP0RTFMfLy8iguLmbevHlcccUVAJx22mksXbqUBk+u6R07dvDll192OXfv3r20t7cza9Ys7r77bj788EO/4+PGjWPnzp28//77ANTX19Pa2sppp53GE088AcCmTZvYtm0bRx55pN+5vnVKS0sZPHhwlxlGNHDMByAiXwP+BygC2oFHjDG/cUqeZGdk/5HUNNZQmFvYUZaVnkVmWiY1jTX0z+lPXVMdNU01XDXxKgclVZT4csUVVzBz5swOU9Bpp51GTU0NJ598MmCVxOOPP056errfeTt27OD73/9+RzTQz372M7/jWVlZPPXUU9x44400NjaSm5vLypUruf7665k/fz7HHnssGRkZPProox17EnspKSnh+9//PhMmTKBfv34x2z9AwpmOxOTGIsOAYcaYD0UkH1gDXGKM+U83p3URtrS0lOLi4hhJGRluks3rAyjMKezo7Cc2TyTviDzWV613XRSQm9ouGCpf3/HKtnPnTg477LDwTopBFFAovOmg3Ug4soVo1662KBycARhjdgG7PO/rReQTYDjQnQJQ+siEogks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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_step_lda()\n",
    "plot_scikit_lda(X_lda_sklearn, title='Default LDA via scikit-learn')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
